package com.love.cloud.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.love.cloud.admin.api.entity.SysUserGroup;
import com.love.cloud.admin.api.entity.SysUserGroupMember;
import com.love.cloud.admin.api.vo.GroupMemberRoleVo;
import com.love.cloud.admin.api.vo.MobilizeVo;
import com.love.cloud.admin.api.vo.SysUserGroupPageVo;

/**
 * @author hongdongqu
 */
public interface SysUserGroupService extends IService<SysUserGroup> {

    /**
     * 更新数据
     * @param sysUserGroup
     * @return
     */
    Object update(SysUserGroup sysUserGroup);


    /**
     * 删除组
     * @param id
     * @return
     */
    Object delete(Long id);



    /**
     * 新增数据
     * @param sysUserGroup
     * @return
     */
    Object add(SysUserGroup sysUserGroup);

    /**
     * 获取
     * @param sysUserGroupPageVo
     * @return
     */
    Object groupMemberPage(Page page, SysUserGroupPageVo sysUserGroupPageVo);

    /**
     * 获取到列表数据
     */
    Object getList();

    /**
     * 人员调动
     * @param mobilizeVo
     * @return
     */
    Object mobilize(MobilizeVo mobilizeVo);

    /**
     * 移除组成员
     * @param sysUserGroupMember
     */
    Object removeGroupMember(SysUserGroupMember sysUserGroupMember);

    /**
     * 获取到指定组的全部组成员
     * @param sysUserGroupMember
     * @return
     */
    Object getAllGroupMember(SysUserGroupMember sysUserGroupMember);

    /**
     * 设置用户组成员的角色
     */
    Object setGroupMemberRole(GroupMemberRoleVo groupMemberRoleVo);
}
